欢迎来到 Julia 1.5 中文文档(PDF版本)!
请先阅读 Julia 1.0 正式发布博文 以获得对这门语言的总体概观。我们推荐刚刚开始学习 Julia 语言的朋友阅读中文社区提供的 Julia入门指引,也推荐你在中文论坛对遇到的问题进行提问。
关于中文文档Julia 语言相关的本地化工作是一个由社区驱动的开源项目 JuliaZH.jl,旨在方便 Julia 的中文用户。我们目前使用 Transifex 作为翻译平台。翻译工作正在进行,有任何疑问或建议请到社区论坛文档区反馈。若有意参与翻译工作,请参考翻译指南。
鸣谢简介科学计算对性能一直有着最高的需求,但目前各领域的专家却大量使用较慢的动态语言来开展他们的日常工作。 偏爱动态语言有很多很好的理由,因此我们不会舍弃动态的特性。 幸运的是,现代编程语言设计与编译器技术可以大大消除性能折衷(trade-off),并提供有足够生产力的单一环境进行原型设计,而且能高效地部署性能密集型应用程序。 Julia 语言在这其中扮演了这样一个角色:它是一门灵活的动态语言,适合用于科学计算和数值计算,并且性能可与传统的静态类型语言媲美。
由于 Julia 的编译器和其它语言比如 Python 或 R 的解释器有所不同,一开始你可能发现 Julia 的性能并不是很突出。 如果你觉得速度有点慢,我们强烈建议在尝试其他功能前,先读一读文档中的提高性能的窍门。 在理解了 Julia 的运作方式后,写出和 C 一样快的代码对你而言就是小菜一碟。
Julia 拥有可选类型标注和多重派发这两个特性,同时还拥有很棒的性能。 这些都得归功于使用 LLVM 实现的类型推导和即时编译(JIT)技术。Julia 是一门支持过程式、函数式和面向对象的多范式语言。 它像 R、MATLAB 和 Python 一样简单,在高级数值计算方面有丰富的表现力,并且支持通用编程。 为了实现这个目标,Julia 以数学编程语言(mathematical programming languages)为基础,同时也参考了不少流行的动态语言,例如 Lisp、Perl、Python、Lua、和 Ruby。
Julia 与传统动态语言最重要的区别是:
核心语言很小:标准库是用 Julia 自身写的,包括整数运算这样的基础运算丰富的基础类型:既可用于定义和描述对象,也可用于做可选的类型标注通过多重派发,可以根据类型的不同,来调用同名函数的不同实现为不同的参数类型,自动生成高效、专用的代码接近 C 语言的性能尽管人们有时会说动态语言是“无类型的”,但实际上绝对不是这样的:每一个对象都有一个类型,无论它是基础的类型(primitive)还是用户自定义的类型。 大多数的动态语言都缺乏类型